using MediatR;
using B.S.XZYData.ErrorCode;
using System.Collections.Generic;

namespace B.S.XZYData.Api.Read.Application.Command.AssemblyWorkOrder
{
    /// <summary>
    /// 查询装配工单产品明细命令
    /// </summary>
    public class QueryAssemblyWorkOrderProductDetailCommand : IRequest<ApiResult<List<AssemblyWorkOrderProductDetailDto>>>
    {
        /// <summary>
        /// 装配工单ID
        /// </summary>
        public long AssemblyWorkOrderId { get; set; }
    }

    /// <summary>
    /// 装配工单产品明细数据传输对象
    /// </summary>
    public class AssemblyWorkOrderProductDetailDto
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 装配工单ID
        /// </summary>
        public long AssemblyWorkOrderId { get; set; }

        /// <summary>
        /// 层级编号
        /// </summary>
        public string HierarchyNumber { get; set; } = string.Empty;

        /// <summary>
        /// 产品编号
        /// </summary>
        public string ProductNumber { get; set; } = string.Empty;

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; } = string.Empty;

        /// <summary>
        /// 生产进度
        /// </summary>
        public decimal ProductionProgress { get; set; }

        /// <summary>
        /// 产品规格
        /// </summary>
        public string? ProductSpecification { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// 单位数量
        /// </summary>
        public int UnitQuantity { get; set; }

        /// <summary>
        /// 完成数
        /// </summary>
        public int CompletedQuantity { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreatorDate { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string? Creator { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdatorDate { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        public string? Updator { get; set; }
    }
} 